package com.cn.order.service;



import com.cn.api.VisitorCoreService;
import com.cn.dto.VisitorDTO;
import com.cn.order.entity.Visitor;
import com.cn.order.mapper.VisitorMapper;
import com.cn.order.util.Exchange;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;

import java.util.List;


@Component
@RestController
@RequestMapping("/api/visitor")
//@Service("visitorService")
public class VisitorServiceImpl implements VisitorCoreService {
    @Autowired
    private VisitorMapper visitorMapper;
    @Autowired
    private Exchange exchange;


    @Override
    @GetMapping("/findAll")
    public List<VisitorDTO> findAll(@RequestBody VisitorDTO visitorDTO) {
        List<Visitor> visitor= visitorMapper.findAll(visitorDTO);
        List<VisitorDTO> visitorDTO1 =  exchange.change(visitor);
        return visitorDTO1;
    }

    //        List<VisitorDTO> list = new ArrayList<>();
//        VisitorDTO visitorDTO = new VisitorDTO();
//        for (int i = 0; i < visitor.size(); i++) {
//            visitorDTO.setCert(visitor.get(i).getCert());
//            visitorDTO.setCertName(visitor.get(i).getCertName());
//            visitorDTO.setVisitorId(visitor.get(i).getId());
//            visitorDTO.setIdNumber(visitor.get(i).getIdNumber());
//            visitorDTO.setPhone(visitor.get(i).getPhone());
//            visitorDTO.setUserId(visitor.get(i).getUserId());
//            visitorDTO.setVisitorType(visitor.get(i).getVisitorType());
//            visitorDTO.setOrderId(visitor.get(i).getOrderId());
//            list.add(visitorDTO);
//        }
    @Override
    @GetMapping("/findByVisitorId")
    public List<VisitorDTO> findByVisitorId(Integer visitorId) {
        List<Visitor> visitor=visitorMapper.findByVisitorId(visitorId);
        List<VisitorDTO> visitorDTO=exchange.change(visitor);
        return visitorDTO;
    }

    @Override
    @GetMapping("/findByOrderNumber")
    public List<VisitorDTO> findByOrderNumber(String orderNumber) {
        List<Visitor> visitor=visitorMapper.findByOrderNumber(orderNumber);
        List<VisitorDTO> visitorDTO=exchange.change(visitor);
        return visitorDTO;
    }


    @Override
    @PostMapping("/add")
    public Integer add(VisitorDTO visitorDTO) {
        return visitorMapper.add(visitorDTO);
    }


    @Override
    @PostMapping("/update")
    public Integer update(VisitorDTO visitorDTO) {
        return visitorMapper.update(visitorDTO);
    }


    @Override
    @PostMapping("/delete")
    public Integer delete(Integer id) {
        return visitorMapper.delete(id);
    }



}
